package cn.fl.riskctrl.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.vo.RcCstBscInfoVO;
import fl.riskctrl.facade.riskctrl.dto.RcCstBscInfoDTO;

import java.util.ArrayList;
import java.util.List;

 /**
 * @Description: 风险控制客户基础信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class RcCstBscInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto
	 * @return RcCstBscInfoVO
	 */
	public static RcCstBscInfoVO toVO(RcCstBscInfoDTO dto) {
		RcCstBscInfoVO  vo = null;
		if (dto != null) { 
			vo = new RcCstBscInfoVO();
			vo.setId(dto.getId());
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCertTypCd(dto.getCertTypCd());//注册证件类型(CST0005)
			vo.setCertNo(dto.getCertNo());//注册证件号
			vo.setMp1(dto.getMp1());//手机号1
			vo.setMp2(dto.getMp2());//手机号2
			vo.setCstTypCd(dto.getCstTypCd());//客户分类（CST0001）
			vo.setPrdTyp(dto.getPrdTypCd());//购车类型
			vo.setPrdAmt(dto.getPrdAmt());//贷款金额(分)
			vo.setMarStsCd(dto.getMarStsCd());//婚姻状况(CST0007)
			vo.setDriveIdHolderCd(dto.getDriveIdHolderCd());//行驶证所有人(本人、他人)
			vo.setCstMgrId(dto.getCstMgrId());//客户经理ID
			vo.setCstMgrNm(dto.getCstMgrNm());//客户经理名称
			vo.setCstMgrOrgCd(dto.getCstMgrOrgCd());//客户经理组织架构代码
			vo.setCstMgrBuOrgCd(dto.getCstMgrBuOrgCd());//客户经理事业部代码
			vo.setSplId(dto.getSplId());//所属供应商
			vo.setSplNm(dto.getSplNm());//供应商名称
			vo.setAudStsCd(dto.getAudStsCd());//审核状态(SYS0019)
			vo.setPNo(dto.getPNo());//流程编号
			vo.setPInstId(dto.getPInstId());//流程实例ID
			vo.setAudStsDesc(dto.getAudStsDesc());//审核结果内容
			vo.setAudStsDesc2(dto.getAudStsDesc2());//审核结果内容2
			vo.setAudStsDesc3(dto.getAudStsDesc3());//审核结果内容3
			vo.setAudStsDesc4(dto.getAudStsDesc4());//审核结果内容4
			vo.setRskLvlCd(dto.getRskLvlCd());//征信平级
			vo.setNotifyQty(dto.getNotifyQty());//通知次数
			vo.setIsNotify(dto.getIsNotify());//是否通知
			vo.setLivTm(dto.getLivTm());//活体检测时间
			vo.setLivScore(dto.getLivScore());//活体检测分数
			vo.setLivAudStsCd(dto.getLivAudStsCd());//活体检测审核状态(SYS0019)
			vo.setLivAudStsDesc(dto.getLivAudStsDesc());//活体检测审核结果内容
			vo.setDsCd(dto.getDsCd());//数据来源(SYS0001)
			vo.setSysCd(dto.getSysCd());//系统代码(SYS0001)
			vo.setCstRem(dto.getCstRem());//备注
			vo.setSrchQty(dto.getSrchQty());//轮询次数
			vo.setIsDl(dto.getIsDl());//是否死亡
			vo.setIsValid(dto.getIsValid());//是否有效
			vo.setIsDel(dto.getIsDel());//是否删除
			vo.setTransFlg(dto.getTransFlg());//迁移标识
			vo.setCrtNm(dto.getCrtNm());//创建者名称

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

			vo.setPrdTypCdNm(dto.getPrdTypCdNm());
			vo.setMarStsCdNm(dto.getMarStsCdNm());
			vo.setAudStsCdNm(dto.getAudStsCdNm());
			vo.setRskLvlCdNm(dto.getRskLvlCdNm());
			vo.setLivAudStsCdNm(dto.getLivAudStsCdNm());
			vo.setDsCdNm(dto.getDsCdNm());
			vo.setCstTypCdNm(dto.getCstTypCdNm());
			vo.setDriveIdHolderCdNm(dto.getDriveIdHolderCdNm());
			vo.setMpMsgCd(dto.getMpMsgCd());
			vo.setMpMsgCdNm(dto.getMpMsgCdNm());
			vo.setMpMsgDesc(dto.getMpMsgDesc());

			// 是否生成电子授权书
			vo.setIsELoa(dto.getIsELoa());

			vo.setIsReaud(dto.getIsReaud());
			vo.setAudOpinion(dto.getAudOpinion());
			vo.setAudOpinion2(dto.getAudOpinion2());
			vo.setApplyTyp(dto.getApplyTyp());
			vo.setApplyTypNm(dto.getApplyTypNm());
			vo.setIsHasDbr(dto.getIsHasDbr());
			vo.setRcCstSocialRlVOList(RcCstSocialRlVOTransform.toVOList(dto.getRcCstSocialRlDTOList()));
			vo.setRskLvlCd2(dto.getRskLvlCd2());//客户等级
			vo.setUpDownType(dto.getUpDownType());//升降级标识
			vo.setCarNo(dto.getCarNo());//车牌号
			vo.setAddress(dto.getAddress());//地址
			vo.setGenderCd(dto.getGenderCd());//性别
			vo.setNation(dto.getNation());//民族
			vo.setBirthday(dto.getBirthday());//生日
            vo.setInspectionPlan(dto.getInspectionPlan());
			vo.setChannelNm(dto.getChannelNm());//挂靠公司名称
			vo.setRskLvlCd3(dto.getRskLvlCd3());
			vo.setRskLvlCd3Nm(dto.getRskLvlCd3Nm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo
	 * @return RcCstBscInfoDTO
	 */
	public static RcCstBscInfoDTO toDTO(RcCstBscInfoVO vo) {
		RcCstBscInfoDTO dto = null;
		if (vo != null) {
			dto = new RcCstBscInfoDTO();
			dto.setId(vo.getId());
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setCertTypCd(vo.getCertTypCd());//注册证件类型(CST0005)
			dto.setCertNo(vo.getCertNo());//注册证件号
			dto.setMp1(vo.getMp1());//手机号1
			dto.setMp2(vo.getMp2());//手机号2
			dto.setCstTypCd(vo.getCstTypCd());//客户分类（CST0001）
			dto.setPrdTypCd(vo.getPrdTyp());//购车类型
			dto.setPrdAmt(vo.getPrdAmt());//贷款金额(分)
			dto.setMarStsCd(vo.getMarStsCd());//婚姻状况(CST0007)
			dto.setDriveIdHolderCd(vo.getDriveIdHolderCd());//行驶证所有人(本人、他人)
			dto.setCstMgrId(vo.getCstMgrId());//客户经理ID
			dto.setCstMgrNm(vo.getCstMgrNm());//客户经理名称
			dto.setCstMgrOrgCd(vo.getCstMgrOrgCd());//客户经理组织架构代码
			dto.setCstMgrBuOrgCd(vo.getCstMgrBuOrgCd());//客户经理事业部代码
			dto.setSplId(vo.getSplId());//所属供应商
			dto.setSplNm(vo.getSplNm());//供应商名称
			dto.setAudStsCd(vo.getAudStsCd());//审核状态(SYS0019)
			dto.setPNo(vo.getPNo());//流程编号
			dto.setPInstId(vo.getPInstId());//流程实例ID
			dto.setAudStsDesc(vo.getAudStsDesc());//审核结果内容
			dto.setAudStsDesc2(vo.getAudStsDesc2());//审核结果内容2
			dto.setAudStsDesc3(vo.getAudStsDesc3());//审核结果内容3
			dto.setAudStsDesc4(vo.getAudStsDesc4());//审核结果内容4
			dto.setRskLvlCd(vo.getRskLvlCd());//征信平级
			dto.setNotifyQty(vo.getNotifyQty());//通知次数
			dto.setIsNotify(vo.getIsNotify());//是否通知
			dto.setLivTm(vo.getLivTm());//活体检测时间
			dto.setLivScore(vo.getLivScore());//活体检测分数
			dto.setLivAudStsCd(vo.getLivAudStsCd());//活体检测审核状态(SYS0019)
			dto.setLivAudStsDesc(vo.getLivAudStsDesc());//活体检测审核结果内容
			dto.setDsCd(vo.getDsCd());//数据来源(SYS0001)
			dto.setSysCd(vo.getSysCd());//系统代码(SYS0001)
			dto.setCstRem(vo.getCstRem());//备注
			dto.setSrchQty(vo.getSrchQty());//轮询次数
			dto.setIsDl(vo.getIsDl());//是否死亡
			dto.setIsValid(vo.getIsValid());//是否有效
			dto.setIsDel(vo.getIsDel());//是否删除
			dto.setTransFlg(vo.getTransFlg());//迁移标识
			dto.setCrtNm(vo.getCrtNm());//创建者名称

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人

			dto.setPrdTypCdNm(vo.getPrdTypCdNm());
			dto.setMarStsCdNm(vo.getMarStsCdNm());
			dto.setAudStsCdNm(vo.getAudStsCdNm());
			dto.setRskLvlCdNm(vo.getRskLvlCdNm());
			dto.setLivAudStsCdNm(vo.getLivAudStsCdNm());
			dto.setDsCdNm(vo.getDsCdNm());
			dto.setCstTypCdNm(vo.getCstTypCdNm());
			dto.setDriveIdHolderCdNm(vo.getDriveIdHolderCdNm());
			dto.setMpMsgCd(vo.getMpMsgCd());
			dto.setMpMsgDesc(vo.getMpMsgDesc());

			// 是否生成电子授权书
			dto.setIsELoa(vo.getIsELoa());

			dto.setIsReaud(vo.getIsReaud());
			dto.setAudOpinion(vo.getAudOpinion());
			dto.setAudOpinion2(vo.getAudOpinion2());
			dto.setApplyTyp(vo.getApplyTyp());
			dto.setApplyTypNm(vo.getApplyTypNm());
			dto.setIsHasDbr(vo.getIsHasDbr());
			dto.setRcCstSocialRlDTOList(RcCstSocialRlVOTransform.toDTOList(vo.getRcCstSocialRlVOList()));
			dto.setRskLvlCd2(vo.getRskLvlCd2());//客户等级
			dto.setUpDownType(vo.getUpDownType());//升降级标识
			dto.setCarNo(vo.getCarNo());//车牌号
			dto.setAddress(vo.getAddress());//地址
			dto.setNation(vo.getNation());//民族
			dto.setGenderCd(vo.getGenderCd());//性别
			dto.setBirthday(vo.getBirthday());//生日
            dto.setInspectionPlan(vo.getInspectionPlan());
			dto.setChannelNm(vo.getChannelNm());//挂靠公司名称

		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list
	 * @return List<RcCstBscInfoVO>
	 */
	public static List<RcCstBscInfoVO> toVOList(List<RcCstBscInfoDTO> list) {
		List<RcCstBscInfoVO>  voList = new ArrayList<RcCstBscInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (RcCstBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<RcCstBscInfoVO>
	 * @return List<RcCstBscInfoDTO>
	 */
	public static List<RcCstBscInfoDTO> toDTOList(List<RcCstBscInfoVO> list) {
		List<RcCstBscInfoDTO>  dtoList = new ArrayList<RcCstBscInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (RcCstBscInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
